Most prior personal computers include many types of memory storage devices. Hard magnetic disk drives are used for mass memory storage, while different types of semiconductor memories are used for other purposes.
The non-volatility of hard magnetic disk drives is one of the chief reasons for their use. They may be turned on and off without loss of data. Hard drives store data on concentric tracks. Each track includes several sectors, each of which is typically 512 bytes in length. Reads and writes to magnetic disk drives occur a sector at a time.
A typical user file stored on a magnetic disk drive occupies many sectors, randomly located on the surface of the disk drive. A file allocation table (FAT) allows location of each sector of the file by storing a chain of pointers for the file. Each pointer points to the next sector of the file.
Hard drives suffer from a number of disadvantages. Their size, their height in particular, often makes them unattractive for use in portable and lap top computers. The height of a hard disk drive has often been the limiting factor in attempts to reduce computer size to make computers more portable. Hard drives also consume relatively large amounts of power, which makes them even less attractive for computers that are battery powered.
Hard drives are less than ideal for use in computers that will be used out-of-doors. Magnetic disk drives are extremely sensitive to vibration and shock. Additionally, magnetic drives cannot tolerate the dust and humidity associated with much of the great outdoors.
Semiconductor memories, also referred to as solid state memories, do not suffer from many of the disadvantages of magnetic disk drives. They are small and rugged and consume less power than magnetic drives.
One type of non-volatile semiconductor memory is the FLASH electrically erasable programmable read only memory (FLASH memory). FLASH memories can be programmed by the user and once programmed retain their data until erased. FLASH memories are rapidly erased by erasing a block of memory at a time. A block is a relatively large amount of data, approximately 64 Kbytes or 65,535 bytes.
A FLASH memory cell is erased when net charge is neutral. An erased FLASH bit is referred to as a logical 1. Conversely, a FLASH memory cell is programmed when the net charge is negative. A FLASH memory cell cannot be reprogrammed without a prior erasure with one exception. Any FLASH bit can be programmed to a 0 without prior erasure.
In some prior FLASH memories programming and erasure is controlled internally by a write state machine or a command register. Internal control of programming and erasure lessens the knowledge and time required to program and erase the FLASH memories. FLASH erase time times remain relatively slow despite internal control. Erase cycle time is on the order one to two seconds. If an erase must occur before every write then it is not possible to approach magnetic disk drive write times using FLASH memory.